-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Removing sln level turn off of setplatform feature #8885
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Can you please add a test covering this? |
|
Also, what's the impact on graph + platform negotiation? |
By this do you mean automation? or a description of the testing we went through in order to validate this change |
|
I'd prefer an automated test in this repo, yeah. If there aren't any end-to-end tests for this feature area maybe only the graph stuff gets tested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pushed a few nits and have a few more comments here.
3c96ea7 to
6e2ac16
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super nit: Sln or even better SolutionFile
298a4db to
e33c544
Compare
Currently we turn off dynamic platform resolution for a whole solution if a single project in the solution is assigned a configuration. This is problematic as some projects are outside of the scope of the solution but still have certain targets that run on them that are architecture specific. These projects will build as the wrong architecture because no configuration is defined and no platform negotiation takes place. I removed the conditional that turns platform negotiation off on a sln level. The logic to turn this off on a project level is already in place through checking is a projectreference has setplatform appended to it. This will make sure no projects with configurations defined will be negotiated for as MSbuild adds setplatform metadata to projectreferences with configurations.
e33c544 to
657005a
Compare
Summary
Allow dynamic platform resolution for projects not mentioned in a solution.
Customer Impact
Enables adoption of dynamic platform resolution for dev-desktop scenarios in a large internal repo.
Regression?
No.
Testing
This was tested in the VS repo on the VC sln which covers lots of scenarios
Risk
Low--feature has low adoption because of sticking points like this, so blast radius of regression is low.
Details
Context
Currently we turn off dynamic platform resolution for a whole solution if a single project in the solution is assigned a configuration. This is problematic as some projects are outside of the scope of the solution but still have certain targets that run on them that are architecture specific. These projects will build as the wrong architecture because no configuration is defined and no platform negotiation takes place.
Changes Made
I removed the conditional that turns platform negotiation off on a sln level. The logic to turn this off on a project level is already in place through checking is a projectreference has setplatform appended to it. This will make sure no projects with configurations defined will be negotiated for as MSbuild ads setplatform metadata to projectreferences with configurations.